home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Original Shareware 1.1
/
The Original Shareware (WeMake CDs)(Volume 1.1)(CDs, Inc)(1993).iso
/
18
/
fpc103.zip
/
CASE.SEQ
< prev
next >
Wrap
Text File
|
1988-05-13
|
1KB
|
32 lines
\ CASE.SEQ Case statment by Bob Smith
comment: \ Moved to the kernel
CODE (OF) ( n1 n2 -- n1 ) ( or ) ( n1 n1 -- )
AX POP RP SP XCHG 0 [RP] AX CMP 0=
IF SP RP XCHG AX POP IP INC IP INC NEXT
ELSE SP RP XCHG 0 [IP] IP MOV NEXT
THEN END-CODE
comment;
: CASE ( -- )
<MARK 0 ; IMMEDIATE
: ENDOF ( -- )
COMPILE BRANCH >MARK SWAP >RESOLVE ; IMMEDIATE
: OF ( n1 n2 -- n1 ) ( n1 n1 -- )
COMPILE (OF) >MARK ; IMMEDIATE
: NRESOLVE ( 0 n1 n2 ... n -- )
BEGIN DUP
IF >RESOLVE 0
ELSE -1 THEN
UNTIL DROP ;
: ENDCASE ( -- )
NRESOLVE DROP ; IMMEDIATE